import base from './base'

export default {

    /**
     *  @func 调用通讯录
     *  @param {Object} query 请求参数
     *  @param {number} fromDepartmentId =-1  必填，-1表示打开的通讯录从自己所在部门开始展示, 0表示从最上层开始。
     *  @param {string} mode ="single" 必填，选择模式，single表示单选，multi表示多选。
     *  @param {array} type =["department", "user"] 必填，选择限制类型，指定department、user中的一个或者多个。
     *  @param {array} selectedDepartmentIds =["2","3"] 非必填，已选部门ID列表。用于多次选人时可重入。
     *  @param {array} selectedUserIds =["lisi","lisi2"] 非必填，已选用户ID列表。用于多次选人时可重入。
     *  @param {number} includeExternalContact =1 非必填，是否包含外部联系人。
     *  @returns {Promise} 返回一个Promise
     */
    selectEnterpriseContact: function (query) {
        return new Promise(async (resolve, reject) => {
            base.agentConfig().then(() => {
                wx.invoke(
                    "selectEnterpriseContact",
                    {
                        fromDepartmentId: query && typeof query.fromDepartmentId !== 'undefined' ? query.fromDepartmentId : -1,
                        mode: query && query.mode ? query.mode : "single",
                        type: query && query.type && query.type.length ? query.type : ["user"],
                        selectedDepartmentIds: query && query.selectedDepartmentIds,
                        selectedUserIds: query && query.selectedUserIds,
                        includeExternalContact: query && query.includeExternalContact
                    },
                    (res) => {
                        resolve(res);
                        console.log("调用通讯录结果----", res);
                    }
                );
            });
        })
    },



    
    /**
     *  @func 创建会话并发送消息
     *  @param {Object} query 请求参数
     *  @param {string} userIds ='zhangshan;lisi;wangwu'  参与会话的企业成员列表，格式为userid1;userid2;...，用分号隔开。
     *  @param {string} externalUserIds ='wmEAlECwAAHrbWYDOK5u3Af13xlYDDNQ;wmEAlECwAAHrbWYDOK5u3Af13xlYDDNT'   参与会话的外部联系人列表，格式为userId1;userId2;…，用分号隔开。
     *  @param {string} groupName ='讨论组'  非必填，会话名称。单聊时该参数传入空字符串""即可。
     *  @param {string} chatId ="CHATID"  新建会话时，chatId必须为空串
     *  @param {Object} msg 消息内容
     *  @param {string} msg.title   消息标题
     *  @param {string} msg.desc   消息描述
     *  @param {string} msg.link   消息链接
     *  @param {string} msg.imgUrl   消息封面
     *  @returns {Promise} 返回一个Promise
     */
    openChatWithMsg: function (query) {
        return new Promise(async (resolve, reject) => {
            base.agentConfig().then(() => {
                wx.invoke(
                    "openChatWithMsg",
                    {
                        userIds: query && query.userIds ? query.userIds : '',
                        externalUserIds: query && query.externalUserIds ? query.externalUserIds : '',
                        groupName: query && query.groupName ? query.groupName : '讨论组',
                        chatId: query && query.chatId ? query.chatId : '',
                        msg: query && query.msg ? query.msg : { title: '', desc: '', link: '', imgUrl: '' }
                    }, (res) => {
                        resolve(res);
                        console.log("创建会话并发送消息----", res);
                    }
                );
            });
        })
    },




    /**
     *  @func 获取个人信息
     *  @param {Object} query 请求参数
     *  @param {number} type =1 必填 1表示该userid是企业成员，2表示该userid是外部联系人
     *  @param {string} userid ="wmEAlECwAAHrbWYDOK5u3Af13xlYDDNQ"   可以是企业成员，也可以是外部联系人
     *  @returns {Promise} 返回一个Promise
     */
    openUserProfile: function (query) {
        return new Promise(async (resolve, reject) => {
            base.agentConfig().then(() => {
                wx.invoke(
                    "openUserProfile",
                    {
                        type: query && query.type ? query.type : 1,
                        userid: query && query.userid ? query.userid : '',
                    }, (res) => {
                        resolve(res);
                        console.log("获取个人信息----", res);
                    }
                );
            });
        })
    },


}